package com.example.demo.common.dto;

import com.alibaba.fastjson.JSON;
import java.util.Objects;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.message.Message;

/**
 * @author yongen
 * @description: 消息传输对象
 * @date 2022/2/9 2:29 PM
 */
@Data
public class MessageDTO {

  /**
   * 消息ID
   */
  private String msgId;
  /**
   * 主题
   */
  private String topic;
  /**
   * 消息标签体
   */
  private String tag;
  /**
   * 消息业务主键
   */
  private String key;
  /**
   * 消息体
   */
  private byte[] content;

  public Message getMessage() {

    boolean checkFlag = StringUtils.isNotBlank(topic)
        && StringUtils.isNotBlank(tag) && StringUtils.isNotBlank(key) && Objects.nonNull(content);
    if (!checkFlag) {
      throw new RuntimeException("RocketMQMessageDTO parameter missing");
    }
    return new Message(topic, tag, key, content);
  }
}
